package day34;
import java.util.*;

public class A2 {


    /**
     * kotori和迷宫
     */
    static boolean[][] check;//记录遍历的路径
    static Queue<int[]> queue = new LinkedList<>();//用来遍历使用
    static int ret=0;//记录可到达的出口数量
    static int[] dx = {1,-1,0,0};
    static int[] dy = {0,0,1,-1};
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int n = in.nextInt();
            int m = in.nextInt();
            check = new boolean[n][m];
            char[][] arr = new char[n][m];
            for(int i=0;i<n;i++) {
                String t = in.next();
                for(int j=0;j<m;j++) {
                    arr[i][j]=t.charAt(j);
                    if(arr[i][j]=='k') queue.add(new int[]{i,j}); //开始位置
                }
            }
            int r = bfs(arr,n,m);
            if(r==-1) {
                System.out.println(r);
            }else {
                System.out.println(ret+" "+r);
            }
        }
    }
    public static int bfs(char[][] arr,int n,int m) {
        int time=0; //遍历层数
        int r=Integer.MAX_VALUE; //最小步数
        while(!queue.isEmpty()) {
            int sz = queue.size();
            time++;
            for(int i=0;i<sz;i++) {
                //判断出口
                int[] t = queue.poll();
                for(int k=0;k<4;k++) {
                    int x=t[0]+dx[k],y=t[1]+dy[k];
                    check[t[0]][t[1]]=true;
                    if(x>=0 &&x<n &&y>=0&&y<m && !check[x][y] && arr[x][y]!='*') {
                        if(arr[x][y]=='e') {
                            ret++;//出口+1
                            check[x][y]=true;
                            if(r==Integer.MAX_VALUE) r = time;
                        }else if(arr[x][y]=='.'){
                            queue.add(new int[]{x,y});
                            check[x][y]=true;
                        }
                    }
                }
            }
        }
        return r==Integer.MAX_VALUE?-1:r;
    }
}
